{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 读取数据\n",
    "## 特征选择与预处理\n",
    "## 数据规范化\n",
    "## 模型选择与应用\n",
    "## 效果评估"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "#导包\n",
    "from sklearn.cluster import KMeans\n",
    "from sklearn import preprocessing\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Gender</th>\n",
       "      <th>Age</th>\n",
       "      <th>Annual Income (k$)</th>\n",
       "      <th>Spending Score (1-100)</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CustomerID</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Male</td>\n",
       "      <td>19</td>\n",
       "      <td>15</td>\n",
       "      <td>39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Male</td>\n",
       "      <td>21</td>\n",
       "      <td>15</td>\n",
       "      <td>81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Female</td>\n",
       "      <td>20</td>\n",
       "      <td>16</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Female</td>\n",
       "      <td>23</td>\n",
       "      <td>16</td>\n",
       "      <td>77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Female</td>\n",
       "      <td>31</td>\n",
       "      <td>17</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>Female</td>\n",
       "      <td>35</td>\n",
       "      <td>120</td>\n",
       "      <td>79</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>197</th>\n",
       "      <td>Female</td>\n",
       "      <td>45</td>\n",
       "      <td>126</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>Male</td>\n",
       "      <td>32</td>\n",
       "      <td>126</td>\n",
       "      <td>74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>Male</td>\n",
       "      <td>32</td>\n",
       "      <td>137</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>200</th>\n",
       "      <td>Male</td>\n",
       "      <td>30</td>\n",
       "      <td>137</td>\n",
       "      <td>83</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>200 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            Gender  Age  Annual Income (k$)  Spending Score (1-100)\n",
       "CustomerID                                                         \n",
       "1             Male   19                  15                      39\n",
       "2             Male   21                  15                      81\n",
       "3           Female   20                  16                       6\n",
       "4           Female   23                  16                      77\n",
       "5           Female   31                  17                      40\n",
       "...            ...  ...                 ...                     ...\n",
       "196         Female   35                 120                      79\n",
       "197         Female   45                 126                      28\n",
       "198           Male   32                 126                      74\n",
       "199           Male   32                 137                      18\n",
       "200           Male   30                 137                      83\n",
       "\n",
       "[200 rows x 4 columns]"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "## 读取数据\n",
    "data=pd.read_csv('Mall_Customers.csv',index_col='CustomerID')\n",
    "data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 特征选择与预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Gender</th>\n",
       "      <th>Age</th>\n",
       "      <th>Annual Income (k$)</th>\n",
       "      <th>Spending Score (1-100)</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CustomerID</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>19</td>\n",
       "      <td>15</td>\n",
       "      <td>39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>21</td>\n",
       "      <td>15</td>\n",
       "      <td>81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>20</td>\n",
       "      <td>16</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>23</td>\n",
       "      <td>16</td>\n",
       "      <td>77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0</td>\n",
       "      <td>31</td>\n",
       "      <td>17</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>0</td>\n",
       "      <td>35</td>\n",
       "      <td>120</td>\n",
       "      <td>79</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>197</th>\n",
       "      <td>0</td>\n",
       "      <td>45</td>\n",
       "      <td>126</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>1</td>\n",
       "      <td>32</td>\n",
       "      <td>126</td>\n",
       "      <td>74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>1</td>\n",
       "      <td>32</td>\n",
       "      <td>137</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>200</th>\n",
       "      <td>1</td>\n",
       "      <td>30</td>\n",
       "      <td>137</td>\n",
       "      <td>83</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>200 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            Gender  Age  Annual Income (k$)  Spending Score (1-100)\n",
       "CustomerID                                                         \n",
       "1                1   19                  15                      39\n",
       "2                1   21                  15                      81\n",
       "3                0   20                  16                       6\n",
       "4                0   23                  16                      77\n",
       "5                0   31                  17                      40\n",
       "...            ...  ...                 ...                     ...\n",
       "196              0   35                 120                      79\n",
       "197              0   45                 126                      28\n",
       "198              1   32                 126                      74\n",
       "199              1   32                 137                      18\n",
       "200              1   30                 137                      83\n",
       "\n",
       "[200 rows x 4 columns]"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#将性别类别转为数字 \n",
    "from sklearn.preprocessing import LabelEncoder\n",
    "#实力一个LabelEncoder\n",
    "le=LabelEncoder()\n",
    "#fit_transform一下\n",
    "data['Gender']=le.fit_transform(data['Gender'])\n",
    "data#这样就把性别转为数字了 接下来对数据规范化 "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据规范化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1.        , 0.01923077, 0.        , 0.3877551 ],\n",
       "       [1.        , 0.05769231, 0.        , 0.81632653],\n",
       "       [0.        , 0.03846154, 0.00819672, 0.05102041],\n",
       "       [0.        , 0.09615385, 0.00819672, 0.7755102 ],\n",
       "       [0.        , 0.25      , 0.01639344, 0.39795918],\n",
       "       [0.        , 0.07692308, 0.01639344, 0.76530612],\n",
       "       [0.        , 0.32692308, 0.02459016, 0.05102041],\n",
       "       [0.        , 0.09615385, 0.02459016, 0.94897959],\n",
       "       [1.        , 0.88461538, 0.03278689, 0.02040816],\n",
       "       [0.        , 0.23076923, 0.03278689, 0.7244898 ]])"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#然后把数据用[0-1]规范化一下   首先实例化一个MinMaxScaler\n",
    "min_max_scaler=preprocessing.MinMaxScaler()\n",
    "data=min_max_scaler.fit_transform(data)\n",
    "data[0:10]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型选择与应用\n",
    "## 效果评估"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "簇内误差平方和： [37.27227241211876, 29.552857611943857, 22.39096001192855, 19.060906968996804, 16.4156709816699, 14.225217482045638, 12.26915494127844, 10.610998460321946, 9.403891128552731, 8.510694298352691, 7.808974073017027, 7.100018884012305, 6.482285246626701]\n",
      "轮廓系数： [0.5194624832665107, 0.45835255811254244, 0.3641657522339062, 0.3722192265604816, 0.3776415902227895, 0.385743037102558, 0.39448602106548764, 0.4167843649468325, 0.4323726547377211, 0.4159862539782121, 0.4317066755772662, 0.42626231042951973, 0.42403922343716954]\n"
     ]
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from sklearn.metrics import silhouette_score\n",
    "#用手肘法 看看 不同聚类个数的效果\n",
    "distortions=[]#簇内误差平方和\n",
    "sil_score=[]#轮廓系数\n",
    "\n",
    "for i in range(2,15):\n",
    "    kmeans_model=KMeans(n_clusters=i)\n",
    "    predict_y=kmeans_model.fit_predict(data)\n",
    "    \n",
    "    distortions.append(kmeans_model.inertia_)#簇内误差平方和    \n",
    "    sil_score.append( silhouette_score(data,predict_y) )#轮廓系数\n",
    "    \n",
    "print('簇内误差平方和：',distortions)   \n",
    "print('轮廓系数：',sil_score) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(range(2,15),distortions,marker='x')\n",
    "plt.xlabel('Number of clusters')\n",
    "plt.ylabel('Distortion')\n",
    "plt.title('distortions')\n",
    "plt.show()#这个就像一个手肘一样  然后找到斜率变化最突然的两边 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(range(2,15),sil_score,marker='x')\n",
    "plt.xlabel('Number of clusters')\n",
    "plt.ylabel('silhouette_score')\n",
    "plt.title('silhouette_score')\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
